package com.xique.blelock.Utils;


import android.text.TextUtils;

import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;

import java.util.regex.Pattern;

/**
 * Created by Wxm on 2016/11/28.
 */

public class StringUtil {

    static char[] numArray = {'零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十'};

    /**
     * 转换阿拉伯数字为中文数字
     *
     * @param num
     * @return
     */
    public static String formatInt(int num) {
        char[] val = String.valueOf(num).toCharArray();
        int len = val.length;
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < len; i++) {
            String m = numArray[Integer.parseInt(String.valueOf(val[i]))] + "";
            sb.append(m);
        }
        String s = sb.toString();
        if (num == 10) {
            return "十";
        }
        if (num > 10 && num < 100 && num % 10 == 0) {
            return s.substring(0, 1) + "十";
        }
        if (num > 99 && num < 1000 && num % 100 == 0) {
            return s.substring(0, 1) + "百";
        }

        switch (len) {
            case 2:
                if (num > 10 && num < 20) {
                    s = "十" + s.substring(1, 2);
                } else {
                    s = s.substring(0, 1) + "十" + s.substring(1, 2);
                }
                break;
            case 3:
                if (s.substring(1, 2).equals("零")) {
                    s = s.substring(0, 1) + "百" + s.substring(1, 2) + s.substring(2);
                } else {
                    s = s.substring(0, 1) + "百" + s.substring(1, 2) + "十" + s.substring(2);
                }
                break;

            default:
                break;
        }
        return s;
    }


    /**
     * 验证手机号码
     * <p>
     * 移动号码段:139、138、137、136、135、134、150、151、152、157、158、159、182、183、187、188、147
     * 联通号码段:130、131、132、136、185、186、145
     * 电信号码段:133、153、180、189
     *
     * @param cellphone
     * @return
     */
    public static boolean checkCellphone(String cellphone) {
        String regex = "^((13[0-9])|(14[0-9])|(15([0-9]))|(18[0-9]))\\d{8}$";
        return Pattern.matches(regex, cellphone);
    }

    /**
     * 验证数字
     *
     * @param number
     * @return
     */
    public static boolean isNumber(String number) {
        String regex = "^[0-9]*$";
        return Pattern.matches(regex, number);
    }

    //邮箱验证
    public static boolean isEmail(String strEmail) {
        String strPattern = "^[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$";
        if (TextUtils.isEmpty(strPattern)) {
            return false;
        } else {
            return strEmail.matches(strPattern);
        }
    }


    /**
     * Remove all whitespaces from string
     *
     * @param value
     * @return
     */
    public static String removeWhiteSpaces(String value) {
        return value.replaceAll("\\s+", "");
    }


    /**
     * Google Gson
     * @param jsonInString
     * @return
     */
    public final static boolean isJSONValid3(String jsonInString) {
        try {
            new Gson().fromJson(jsonInString, Object.class);
            return true;
        } catch(JsonSyntaxException ex) {
            return false;
        }
    }
}
